9028752e5b5529bed17791ce63e05a6f0113d1f2,patching/src/main/java/org/jboss/as/patching/metadata/PatchXml_1_0.java,PatchXml_1_0,writeContent,#XMLExtendedStreamWriter#Patch#,138

Before Change



        // Modules
        writer.writeStartElement(Element.MODULES.name);
        writeSlottedItems(writer, Element.ADDED_MODULE, modulesAdd);
        writeSlottedItems(writer, Element.UPDATED_MODULE, modulesUpdate);
        writeSlottedItems(writer, Element.REMOVED_MODULE, modulesRemove);
        writer.writeEndElement();

        // Bundles
        writer.writeStartElement(Element.BUNDLES.name);
        writeSlottedItems(writer, Element.ADDED_BUNDLE, bundlesAdd);
        writeSlottedItems(writer, Element.UPDATED_BUNDLE, bundlesUpdate);
        writeSlottedItems(writer, Element.REMOVED_BUNDLE, bundlesRemove);
        writer.writeEndElement();

        // Misc
        writer.writeStartElement(Element.MISC_FILES.name);
        writeMiscItems(writer, Element.ADDED_MISC_CONTENT, miscAdd);
        writeMiscItems(writer, Element.UPDATED_MISC_CONTENT, miscUpdate);
        writeMiscItems(writer, Element.REMOVED_MISC_CONTENT, miscRemove);
        writer.writeEndElement();

After Change


    }

    @Override
    public void writeContent(final XMLExtendedStreamWriter writer, final Patch patch) throws XMLStreamException {

        // Get started ...
        writer.writeStartDocument();
        writer.writeStartElement(Element.PATCH.name);
        writer.writeDefaultNamespace(PatchXml.Namespace.PATCH_1_0.getNamespace());

        // Name
        writer.writeStartElement(Element.NAME.name);
        writer.writeCharacters(patch.getPatchId());
        writer.writeEndElement();

        // Description
        writer.writeStartElement(Element.DESCRIPTION.name);
        writer.writeCharacters(patch.getDescription());
        writer.writeEndElement();

        // Type
        final Patch.PatchType type = patch.getPatchType();
        if(type == Patch.PatchType.ONE_OFF) {
            writer.writeStartElement(Element.ONE_OFF.name);
        } else {
            writer.writeStartElement(Element.CUMULATIVE.name);
            writer.writeAttribute(Attribute.RESULTING_VERSION.name, patch.getResultingVersion());
        }
        writeAppliesToVersions(writer, patch.getAppliesTo());
        writer.writeEndElement(); // </one-off> or </cumulative>

        // Sort by content and modification type
        final List<ContentModification> bundlesAdd  = new ArrayList<ContentModification>();
        final List<ContentModification> bundlesUpdate  = new ArrayList<ContentModification>();
        final List<ContentModification> bundlesRemove  = new ArrayList<ContentModification>();

        final List<ContentModification> miscAdd = new ArrayList<ContentModification>();
        final List<ContentModification> miscUpdate = new ArrayList<ContentModification>();
        final List<ContentModification> miscRemove = new ArrayList<ContentModification>();

        final List<ContentModification> modulesAdd = new ArrayList<ContentModification>();
        final List<ContentModification> modulesUpdate = new ArrayList<ContentModification>();
        final List<ContentModification> modulesRemove = new ArrayList<ContentModification>();

        for(final ContentModification mod : patch.getModifications()) {
            final ModificationType modificationType = mod.getType();
            final ContentType contentType = mod.getItem().getContentType();
            switch (contentType) {
                case BUNDLE:
                    switch (modificationType) {
                        case ADD:
                            bundlesAdd.add(mod);
                            break;
                        case MODIFY:
                            bundlesUpdate.add(mod);
                            break;
                        case REMOVE:
                            bundlesRemove.add(mod);
                            break;
                    }
                    break;
                case MODULE:
                    switch (modificationType) {
                        case ADD:
                            modulesAdd.add(mod);
                            break;
                        case MODIFY:
                            modulesUpdate.add(mod);
                            break;
                        case REMOVE:
                            modulesRemove.add(mod);
                            break;
                    }
                    break;
                case MISC:
                    switch (modificationType) {
                        case ADD:
                            miscAdd.add(mod);
                            break;
                        case MODIFY:
                            miscUpdate.add(mod);
                            break;
                        case REMOVE:
                            miscRemove.add(mod);
                            break;
                    }
                    break;
            }
        }

        // Modules
        if (!modulesAdd.isEmpty() ||
                !modulesUpdate.isEmpty() ||
                !modulesRemove.isEmpty()) {
            writer.writeStartElement(Element.MODULES.name);
            writeSlottedItems(writer, Element.ADDED_MODULE, modulesAdd);
            writeSlottedItems(writer, Element.UPDATED_MODULE, modulesUpdate);
            writeSlottedItems(writer, Element.REMOVED_MODULE, modulesRemove);
            writer.writeEndElement();
        }

        // Bundles
        if (!bundlesAdd.isEmpty() ||
                !bundlesUpdate.isEmpty() ||
                !bundlesRemove.isEmpty()) {
            writer.writeStartElement(Element.BUNDLES.name);
            writeSlottedItems(writer, Element.ADDED_BUNDLE, bundlesAdd);
            writeSlottedItems(writer, Element.UPDATED_BUNDLE, bundlesUpdate);
            writeSlottedItems(writer, Element.REMOVED_BUNDLE, bundlesRemove);
            writer.writeEndElement();
        }

        // Misc
        if (!miscAdd.isEmpty() ||
                !miscUpdate.isEmpty() ||
                !miscRemove.isEmpty()) {
            writer.writeStartElement(Element.MISC_FILES.name);
            writeMiscItems(writer, Element.ADDED_MISC_CONTENT, miscAdd);
            writeMiscItems(writer, Element.UPDATED_MISC_CONTENT, miscUpdate);
            writeMiscItems(writer, Element.REMOVED_MISC_CONTENT, miscRemove);
            writer.writeEndElement();
        }